icontheme: use g_file_load_contents() for symbolic icons
authorCosimo Cecchi <cosimoc@gnome.org>
Sun, 29 Sep 2013 22:38:54 +0000 (15:38 -0700)
committerCosimo Cecchi <cosimoc@gnome.org>
Mon, 30 Sep 2013 16:45:22 +0000 (09:45 -0700)
When loading a symbolic icon, g_file_get_contents() is currently used
with the icon pathname, to load its SVG data. This won't work when the
icon is not a local file, for instance when a symbolic icon is loaded
from a GFileIcon with a GResource path.
Fortunately GtkIconInfo already holds a GFile, so we can just use
g_file_load_contents() to load the data instead.

https://bugzilla.gnome.org/show_bug.cgi?id=709056

gtk/gtkicontheme.c

index 0786cac102b87499cea901db06d21bcb98b55fb6..8345614f129ebe0258c5d3c0cfed9c99df9c7182 100644 (file)
@@ -4200,7 +4200,7 @@ _gtk_icon_info_load_symbolic_internal (GtkIconInfo  *icon_info,
       css_error = gdk_color_to_css (&error_default_color);
     }
 
-  if (!g_file_get_contents (icon_info->filename, &file_data, &file_len, NULL))
+  if (!g_file_load_contents (icon_info->icon_file, NULL, &file_data, &file_len, NULL, NULL))
     return NULL;
 
   if (!icon_info->symbolic_pixbuf_size)